Characterization test
레거시 코드를 수정할 때 해당 코드의 “바람직한 동작” 또는 “문서화된 동작”이 아니라 “실제 현재의 동작”을 보존하는 게 중요한 경우가 많다. 이런 상황에서 “실제 현재의 동작”이 유지되는 걸 보장하기 위한 목적한 목적으로 작성하는 테스트를 캐릭터리제이션 테스트라고 부른다.
단위 테스트와 같은 기술을 쓰지만 목적이 다르다.
A characterization test is a test that characterizes the actual behavior of a piece of code. There’s no “Well, it should do this” or “I think it does that.” The tests document the actual current behavior of the system.
Steps:
- Use a piece of code in a test harness.
- Write an assertion that you know will fail.
- Let the failure tell you what the behavior is.
- Change the test so that it expects the behavior that the code produces.
- Repeat.
—Working effectively with legacy code